package org.or5e.api.bm;

import java.io.OutputStream;
import java.util.ArrayList;

import org.or5e.api.bm.server.SMTPServer;
import org.or5e.core.OSGiEvents;

public interface BulkMail extends OSGiEvents {

    public void init(BulkMailConfig config) throws BulkMailException;

    public double startCampaign(String campaignName) throws BulkMailException;

    public void stopCampaign(double sessionID) throws BulkMailException;

    public void pauseCampaign(double sessionID) throws BulkMailException;

    public void resumeCampaign(double sessionID) throws BulkMailException;

    public BulkMailStatus getStatus(double sessionID) throws BulkMailException;

    public boolean addServer(double sessionID, SMTPServer server) throws BulkMailException;

    public boolean removeServer(double sessionID, SMTPServer server) throws BulkMailException;

    public ArrayList<SMTPServer> getServerList(double SessionID) throws BulkMailException;

    public void setLogger(OutputStream outStream) throws BulkMailException;

    public void setSecurityManager(BulkMailSecurityManager security);
}
